package edu.dayu.demo4;

/**
 * 给定一个字符串 s ，验证 s 是否是 回文串 ，只考虑字母和数字字符，可以忽略字母的大小写。
 * 输入: s = "A man, a plan, a canal: Panama"
 * 输出: true
 * 解释："amanaplanacanalpanama" 是回文串
 *
 * 思路：把 大写转为 小写，去掉 其他字符。
 *
 */
public class 有效的回文 {
    public static void main(String[] args) {
        String s = "0P";
        System.out.println(isPalindrome(s));
    }

    public static boolean isPalindrome(String s) {
        int left = 0;
        int right = s.length()-1;
        while (left<=right){
            int l = s.charAt(left);
            int r = s.charAt(right);
            if (l>=65&&l<=90)
                l+=32;
            if (r>=65&&r<=90)
                r+=32;

            if (l-r == 0){
                left++;
                right--;
            }else if(l<48||(l>57 && l<65) || (l>90&&l<97) ||l>122)
                left++;
            else if (r<48||(r>57 && r<65)  || (r>90&&r<97) ||r>122)
                right--;
            else
                break;
        }
        return left > right;
    }
}
